/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package systole.persistence.brokersInterface;

import java.util.List;
import systole.domain.persons.identityCard.IdentityCardType;
import systole.exceptions.ExceptionDAO;
import systole.synchronization.remote.entities.IdentityCardTypeRemote;

/**
 *
 * @author jmj
 */
public interface IdentityCardTypeSyncBroker {

    /**
     *
     * @param IdentityCardTypeRemote
     * @throws ExceptionDAO
     */
    public void saveIdentityCardTypeRemote(IdentityCardTypeRemote IdentityCardTypeRemote) throws ExceptionDAO;

    /**
     *
     * @return IdentityCardTypeRemote list
     * @throws ExceptionDAO
     */
    public List<IdentityCardTypeRemote> getIdentityCardTypeToUpdate() throws ExceptionDAO;

    /**
     *
     * @return
     * @throws ExceptionDAO
     */
    public List<IdentityCardType> getIdentityCardTypeToUpload() throws ExceptionDAO;

    /**
     * 
     * @param remoteId
     * @return
     * @throws ExceptionDAO
     */
    public IdentityCardType getIdentityCardTypeByRemoteId(int remoteId) throws ExceptionDAO;

    /**
     *
     * @param cardType
     * @return
     * @throws ExceptionDAO
     */
    public IdentityCardTypeRemote getIdentityCardTypeRemoteFromCardType(IdentityCardType cardType) throws ExceptionDAO;

    /**
     *
     * @return
     * @throws ExceptionDAO
     */
    public int getLastRemotIdentityCardTypeIdSynchronized() throws ExceptionDAO;
}
